<?php
/**
 * 用户模型model
 * 两个基本方法；
 * model
 * tableName
 */

class user extends CActiveRecord{
	
	//在当前模型增加一个属性password2，因为数据库表里没有这个属性
	//我们可以在当前类直接设置这个属性使用
	
	public $pass_word2;
	
	/**
	 * 返回当前模型
	 * 
	 */
	public static function model($className = __CLASS__ ){
		return parent :: model($className);
	}
	
	/**
	 * 定义数据表名字
	 */
	public function tableName(){
		return '{{user}}';
	}

	/**
	 * 对应字段名字
	 */
	public function attributeLabels(){
		return array(
			'user_name' => '用户名：',
			'pass_word' => '密码：',
			'pass_word2' => '确认密码：',
			'user_email' => '邮箱：',
			'user_qq' => 'QQ：',
			'user_tel' => '电话：',
			'user_sex' => '性别：',
			'user_xueli' => '学历：',
			'user_hobby' => '爱好：',
			'user_introduce' => '简介：',
		);
	}
	
	/**
	 * 实现用户注册表单验证
	 * 在模型里边设置一个方法，定义具体表单域验证规则
	 * 
	 */
	
	public function rules(){
		return array(
				array('user_name', 'required', 'message' => '用户名必填'),
				
				//用户名不能重复(与数据库比较)
				array('user_name', 'unique', 'message'=>'用户名已经占用'),
				
				array('pass_word', 'required', 'message' => '密码必填'),
				
				//邮箱默认不能为空
				array('user_email', 'email', 'allowEmpty' => false, 'message'=>'邮箱格式不正确'),
				
				//验证QQ号码（都是数字组成，5到12位之前，开始为非信息，使用正则表达式验证）
				array('user_qq', 'match', 'pattern' => '/^[1-9]\d{4,11}$/','message' => 'qq格式不正确'),
				
				//验证手机号码（都是数字，13开始，一共有11位）
				array('user_tel', 'match', 'pattern' => '/^13\d{9}$/', 'message'=>'手机号码格式不正确'),
				
				//验证学历（信息在2、3、4之间则表示有选择，否则没有），1正则；2范围限制
				//范围限制
				array('user_xueli', 'in','range'=>array(2,3,4,5),'message' => '学历必须选择'),
				
				//验证爱好： 必须两项以上（自定义方法对爱好进行验证）
				array('user_hobby', 'check_hobby'),
				
				//没有具体验证规则的属性，设置安全的验证规则，否则attributes不给接收信息
				array('user_sex, user_introduce', 'safe'),
				
				//验证确认密码password2 要与密码的信息一致
				array('pass_word2', 'compare', 'compareAttribute' => 'pass_word', 'message' => '两次密码必须一致'),
				
				
				
		);
	}
	
	function check_hobby(){
		//在这个方法里边，我们可以获得模型的相关信息
		//$this-> 属性名； 调用模型对象的相关属性信息
		//$this-> 就是我们在控制器controller里边实例化好的模型对象
		$len = strlen($this -> user_hobby);
		if($len < 3)
			$this-> addError('user_hobby', '爱好必须选择两项或以上');
	}
	

	
}